package com.pro.service;

import com.pro.pojo.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ProductService {
    //判断权限
    List<Integer> judgePower(Integer id);
    //获取ztree商品树
    List<ProductCategroy> getProductTree();

    //添加树节点
    boolean addProductCategroy(ProductCategroy productCategroy);

    //删除树节点
    boolean deleteProductCategroy(Integer categroyId);

    //修改树节点
    boolean updateProductCategroy(String title,Integer categroyId);

    //点击树节点获取信息
    List<Product> getCheckedProduct(Integer categroyId);

    public boolean updateProductState(Integer productSate,Integer productCode);

    boolean deleteByProductCodeProduct(Integer productCode);

    public List<Product> getProductSearch(String productName, String title, Integer productSate, String productLabel);

    public List<Product> getProductRetrieval(Product product);

    //根据商品编号修改商品
    boolean updateByProductCodeProduct(Product param);

    //查询所有商品数量
    Integer getProductCounts();

    //模糊查询审核表 类型为商品的数据
    List<Product> getAuditTableAll(Product product);

    //根据不同的审核状态查询商品
    List<Product> getRecordResultProducts(Product product);

    //添加商品
    boolean addProduct(Product param);

    //添加商品审核表
    boolean addCourseRecord(SyCourseRecord syCourseRecord);

    //根据创建人查询个人商品
    List<Product> getPersonalProducts(Integer createId);

    //个人商品的模糊查
    public List<Product> getPersonalProductsSearch(String productName,String searchKeywords,String currentpriceProduct);

    //查询所有商品货号
    List<Product> getProductCode();

    //根据商品编号查询主键商品id
    Product getproductId(Integer productCode);

    //删除商品审核记录
    public boolean deleteProductRecord(String courseId);

    //根据订单id查询商品信息
    Product getProductByOrderId(Integer orderId);

    //计算商品销量
    Product getProductBySalesVolume(Integer shopId);

    //根据商品编号查询商品收藏量
    Integer getUserCollection(Integer productCode);
    //根据商品编号查询商品收藏量
    Integer getUserOrder(Integer productCode);

    //高级检索 根据商品编号、商品名字、商品现价、商品分类查询商品
    List<Product> getProductsByNumNamePriceCatgory(Product product);

    //商品个人审核详情
    public List<SyCourseRecord> getProductCourseRecord(SyCourseRecord syCourseRecord);
    //李佳豪
    //获取上架的商品总量
    int getAllProductUpperCount();
}
